
<!DOCTYPE html>

<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>FindJNI &mdash; CMake 3.27.4 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />
    
    <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
    <script src="../_static/jquery.js"></script>
    <script src="../_static/underscore.js"></script>
    <script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
    <script src="../_static/doctools.js"></script>
    <script src="../_static/sphinx_highlight.js"></script>
    
    <link rel="shortcut icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="FindJPEG" href="FindJPEG.html" />
    <link rel="prev" title="FindJava" href="FindJava.html" />
 

  </head><body>

    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="FindJPEG.html" title="FindJPEG"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="FindJava.html" title="FindJava"
             accesskey="P">previous</a> |</li>
  <li>
    <img src="../_static/cmake-logo-16.png" alt=""
         style="vertical-align: middle; margin-top: -2px" />
  </li>
  <li>
    <a href="https://cmake.org/">CMake</a> &#187;
  </li>
  <li>
    <a href="../index.html">3.27.4 Documentation</a> &#187;
  </li>

          <li class="nav-item nav-item-1"><a href="../manual/cmake-modules.7.html" accesskey="U">cmake-modules(7)</a> &#187;</li>
        <li class="nav-item nav-item-this"><a href="">FindJNI</a></li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <section id="findjni">
<span id="module:FindJNI"></span><h1>FindJNI<a class="headerlink" href="#findjni" title="Permalink to this heading">¶</a></h1>
<p>Find Java Native Interface (JNI) headers and libraries.</p>
<p>JNI enables Java code running in a Java Virtual Machine (JVM) or Dalvik Virtual
Machine (DVM) on Android to call and be called by native applications and
libraries written in other languages such as C and C++.</p>
<p>This module finds if Java is installed and determines where the
include files and libraries are.  It also determines what the name of
the library is.  The caller may set variable <code class="docutils literal notranslate"><span class="pre">JAVA_HOME</span></code> to specify a
Java installation prefix explicitly.</p>
<div class="versionadded">
<p><span class="versionmodified added">New in version 3.24: </span>Added imported targets, components <code class="docutils literal notranslate"><span class="pre">AWT</span></code>, <code class="docutils literal notranslate"><span class="pre">JVM</span></code>, and Android NDK support.
If no components are specified, the module defaults to an empty components
list while targeting Android, and all available components otherwise.</p>
<p>When using Android NDK, the corresponding package version is reported and a
specific release can be requested. At Android API level 31 and above, the
additional <code class="docutils literal notranslate"><span class="pre">NativeHelper</span></code> component can be requested. <code class="docutils literal notranslate"><span class="pre">NativeHelper</span></code> is
also exposed as an implicit dependency of the <code class="docutils literal notranslate"><span class="pre">JVM</span></code> component (only if this
does not cause a conflict) which provides a uniform access to JVM functions.</p>
</div>
<section id="imported-targets">
<h2>Imported Targets<a class="headerlink" href="#imported-targets" title="Permalink to this heading">¶</a></h2>
<div class="versionadded">
<p><span class="versionmodified added">New in version 3.24.</span></p>
</div>
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">JNI::JNI</span></code></dt><dd><p>Main JNI target, defined only if <code class="docutils literal notranslate"><span class="pre">jni.h</span></code> was found.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">JNI::AWT</span></code></dt><dd><p>Java AWT Native Interface (JAWT) library, defined only if component <code class="docutils literal notranslate"><span class="pre">AWT</span></code> was
found.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">JNI::JVM</span></code></dt><dd><p>Java Virtual Machine (JVM) library, defined only if component <code class="docutils literal notranslate"><span class="pre">JVM</span></code> was found.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">JNI::NativeHelper</span></code></dt><dd><p>When targeting Android API level 31 and above, the import target will provide
access to <code class="docutils literal notranslate"><span class="pre">libnativehelper.so</span></code> that exposes JVM functions such as
<code class="docutils literal notranslate"><span class="pre">JNI_CreateJavaVM</span></code>.</p>
</dd>
</dl>
</section>
<section id="result-variables">
<h2>Result Variables<a class="headerlink" href="#result-variables" title="Permalink to this heading">¶</a></h2>
<p>This module sets the following result variables:</p>
<dl>
<dt><code class="docutils literal notranslate"><span class="pre">JNI_INCLUDE_DIRS</span></code></dt><dd><p>The include directories to use.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">JNI_LIBRARIES</span></code></dt><dd><p>The libraries to use (JAWT and JVM).</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">JNI_FOUND</span></code></dt><dd><p><code class="docutils literal notranslate"><span class="pre">TRUE</span></code> if JNI headers and libraries were found.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">JNI_&lt;component&gt;_FOUND</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">New in version 3.24.</span></p>
</div>
<p><code class="docutils literal notranslate"><span class="pre">TRUE</span></code> if <code class="docutils literal notranslate"><span class="pre">&lt;component&gt;</span></code> was found.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">JNI_VERSION</span></code></dt><dd><p>Full Android NDK package version (including suffixes such as <code class="docutils literal notranslate"><span class="pre">-beta3</span></code> and
<code class="docutils literal notranslate"><span class="pre">-rc1</span></code>) or undefined otherwise.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">JNI_VERSION_MAJOR</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">New in version 3.24.</span></p>
</div>
<p>Android NDK major version or undefined otherwise.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">JNI_VERSION_MINOR</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">New in version 3.24.</span></p>
</div>
<p>Android NDK minor version or undefined otherwise.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">JNI_VERSION_PATCH</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">New in version 3.24.</span></p>
</div>
<p>Android NDK patch version or undefined otherwise.</p>
</dd>
</dl>
</section>
<section id="cache-variables">
<h2>Cache Variables<a class="headerlink" href="#cache-variables" title="Permalink to this heading">¶</a></h2>
<p>The following cache variables are also available to set or use:</p>
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">JAVA_AWT_LIBRARY</span></code></dt><dd><p>The path to the Java AWT Native Interface (JAWT) library.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">JAVA_JVM_LIBRARY</span></code></dt><dd><p>The path to the Java Virtual Machine (JVM) library.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">JAVA_INCLUDE_PATH</span></code></dt><dd><p>The include path to <code class="docutils literal notranslate"><span class="pre">jni.h</span></code>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">JAVA_INCLUDE_PATH2</span></code></dt><dd><p>The include path to machine-dependant headers <code class="docutils literal notranslate"><span class="pre">jni_md.h</span></code> and <code class="docutils literal notranslate"><span class="pre">jniport.h</span></code>.
The variable is defined only if <code class="docutils literal notranslate"><span class="pre">jni.h</span></code> depends on one of these headers. In
contrast, Android NDK <code class="docutils literal notranslate"><span class="pre">jni.h</span></code> can be typically used standalone.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">JAVA_AWT_INCLUDE_PATH</span></code></dt><dd><p>The include path to <code class="docutils literal notranslate"><span class="pre">jawt.h</span></code>.</p>
</dd>
</dl>
</section>
</section>


            <div class="clearer"></div>
          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <div>
    <h3><a href="../index.html">Table of Contents</a></h3>
    <ul>
<li><a class="reference internal" href="#">FindJNI</a><ul>
<li><a class="reference internal" href="#imported-targets">Imported Targets</a></li>
<li><a class="reference internal" href="#result-variables">Result Variables</a></li>
<li><a class="reference internal" href="#cache-variables">Cache Variables</a></li>
</ul>
</li>
</ul>

  </div>
  <div>
    <h4>Previous topic</h4>
    <p class="topless"><a href="FindJava.html"
                          title="previous chapter">FindJava</a></p>
  </div>
  <div>
    <h4>Next topic</h4>
    <p class="topless"><a href="FindJPEG.html"
                          title="next chapter">FindJPEG</a></p>
  </div>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/module/FindJNI.rst.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
<div id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>
    </div>
</div>
<script>document.getElementById('searchbox').style.display = "block"</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="FindJPEG.html" title="FindJPEG"
             >next</a> |</li>
        <li class="right" >
          <a href="FindJava.html" title="FindJava"
             >previous</a> |</li>
  <li>
    <img src="../_static/cmake-logo-16.png" alt=""
         style="vertical-align: middle; margin-top: -2px" />
  </li>
  <li>
    <a href="https://cmake.org/">CMake</a> &#187;
  </li>
  <li>
    <a href="../index.html">3.27.4 Documentation</a> &#187;
  </li>

          <li class="nav-item nav-item-1"><a href="../manual/cmake-modules.7.html" >cmake-modules(7)</a> &#187;</li>
        <li class="nav-item nav-item-this"><a href="">FindJNI</a></li> 
      </ul>
    </div>

    <div class="footer" role="contentinfo">
        &#169; Copyright 2000-2023 Kitware, Inc. and Contributors.
      Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 5.3.0.
    </div>
  </body>
</html>